﻿' <summary>
' BeeWit IDE Entorno de desarrollo Visual para php.
' BeeWitPHP IDE es el único entorno de desarrollo para PHP 
' de tipo WYSIWYG (What You See Is What You Get). 
' ¡Ahora si!, aproveche la potencia del lenguaje PHP 
' y desarrolle más rápidamente gracias a la programación 
' intuitiva de BeeWit.
' Copyright © 2010 Dewins Murillo Garcia 
' EMAIL: dewinsmg@gmail.com
' EMAIL: dewins@beewitsoft.com
' Este Programa es Software Libre: usted puede redistribuirlo 
' y/o modificarlo bajo los términos de la Licencia Publica General 
' GNU como es publicada por la Fundacion de Software Libre; 
' en la 3ra versión de la licencia.
' Este programa es distribuido con la esperanza de que sea útil, 
' pero SIN GARANTÍA ALGUNA; sin siquiera la garantía implícita 
' de VALOR COMERCIAL o FORMADO PARA UN PROPÓSITO EN PARTICULAR. 
' Vea la Licencia Publica General GNU para mas detalles.
' Usted debe haber recibido una copia de la Licencia Publica General 
' GNU junto con este programa. Si no, vaya a http://www.beewitsoft.com
' o en http://code.google.com/p/ajax-beewit-php-ide/
' </summary>
' <remarks></remarks>

Public Class ctlEventos
    Private Element As HtmlElement
    Dim id As String = ""

    Public Sub LoadEvents(ByRef TargetImage As HtmlElement)
        'consultar el atributo
        Element = TargetImage
        Dim ClassName As String = ""
        If Element.TagName = "BODY" Then
            Exit Sub
        End If
        Dim CodigoClase As String = Element.GetAttribute("class_code")
        id = TargetImage.GetAttribute("id")
        If id = "" Then
            Me.ListEvents.Items.Clear()
        End If
        Dim PHPCode As String = ""

        If CodigoClase <> "" Then
            ClassName = CodigoClase.Substring((CodigoClase.LastIndexOf("\")) + 1).Replace(".cjx", "")
        End If

        Dim NodeFound As clsNode = Control_Explorer.SearchClass(ClassName, Nothing)

        If Not NodeFound Is Nothing Then
            PHPCode = NodeFound.ContentCode
        Else
            If Not String.IsNullOrEmpty(CodigoClase) Then
                Control_Console.AddMessages("[" & CodigoClase & "] no found!!.  ", ctlConsole.enumTypeMessages.isWARNING)
            End If
        End If

        Dim objWords As New clsEditorCode
        Dim ListedEvents(0) As clsRegExpr.Events
        objWords.Node = NodeFound
        Dim ListedCount As Long = objWords.ListEvents(PHPCode, clsEditorCode.Ambit.isPUBLIC, "", ListedEvents, TargetImage.Id)
        Dim i As Long = 0
        Me.ListEvents.Items.Clear()
        Me.ListEvents.SmallImageList = General.Object_Icons.bmpImageList
        Me.ListEvents.LargeImageList = General.Object_Icons.bmpImageList
        Me.ListEvents.StateImageList = General.Object_Icons.bmpImageList
        Me.ListEvents.View = View.List
        For i = 0 To ListedCount - 1
            Dim EventName As String = ListedEvents(i).EventName
            'If EventName Like "*___*" Then
            '    EventName = Replace(EventName, "___", "_" & TargetImage.Id & "_")
            'End If
            Dim DefaultValue As String = ""
            Dim ActualContent As String = General.Control_Main.ActualEditor.Node.ContentCode
            Dim NewItem As New ListViewItem

            NewItem.ImageKey = "icon_event"
            NewItem.Text = EventName
            If ActualContent Like "*" & EventName & "*" Then
                NewItem.ForeColor = Color.Black
            Else
                NewItem.ForeColor = Color.Gray
            End If
            Me.ListEvents.Items.Add(NewItem)
        Next
    End Sub

    Private Sub ListEvents_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListEvents.DoubleClick
        General.Control_Main.ActualEditor.ExecuteBtnCodeClick()
        General.Control_Main.ActualEditor.Refresh()
        If Me.ListEvents.SelectedItems.Count > 0 Then
            General.Control_Main.ActualEditor._EditorControlCode.CreateMethod(Me.Element.Id, Me.ListEvents.SelectedItems.Item(0).Text)
        End If

    End Sub

    Private Sub ListEvents_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListEvents.SelectedIndexChanged

    End Sub
End Class
